const app = getApp()
let ServiceUrl = app.globalData.ServiceUrl;
var QQMapWX = require('../../utils/qqmap-wx-jssdk.js');
var qqmapsdk = new QQMapWX({
  key: '66XBZ-6EWK2-YZ7UP-CPLDJ-XQLUK-TTFJ6'
});
Page({
  /**
   * 页面的初始数据
   */
  data: {
    latitude: '',//经度
    longitude: '',//纬度
    city:'',//所在地城市名
    value: '',//关键词
    title:'',
    address:'',
    display:'none',
    suggestion:[],
    typeid:''
  },
  /**
   * 输入内容监测 
   */
  onChange(e) {
    this.getsuggest(e.detail)
    if(e.detail == null || e.detail == ''){
      this.setData({display:'none'})
    }
  },
  //数据回填方法
  backfill: function (e) {
    let that = this
    var id = e.currentTarget.id;
    for (var i = 0; i < that.data.suggestion.length;i++){
      if(i == id){
        that.setData({
          backfill: that.data.suggestion[i].title,
          value: that.data.suggestion[i].title,
          display: 'none',
          latitude:that.data.suggestion[i].latitude,
          longitude:that.data.suggestion[i].longitude
        });
        that.postation();
      }  
    }
  },
  //触发关键词输入提示事件
  getsuggest: function(e) {
//    console.log(e)
    var _this = this;
    //调用关键词提示接口
    qqmapsdk.getSuggestion({
      //获取输入框值并设置keyword参数
      keyword: e, //用户输入的关键词，可设置固定值,如keyword:'KFC'
      //region:'北京', //设置城市名，限制关键词所示的地域范围，非必填参数
      success: function(res) {//搜索成功后的回调
//        console.log(res);
        var sug = [];
        for (var i = 0; i < res.data.length; i++) {
          sug.push({ // 获取返回结果，放到sug数组中
            title: res.data[i].title,
            id: res.data[i].id,
            addr: res.data[i].address,
            city: res.data[i].city,
            district: res.data[i].district,
            latitude: res.data[i].location.lat,
            longitude: res.data[i].location.lng
          });
        }
        _this.setData({ //设置suggestion属性，将关键词搜索结果以列表形式展示
          suggestion: sug,
          display:''
        });
      },
      fail: function(error) {
        console.error(error);
      },
      complete: function(res) {
//        console.log(res);
      }
    });
  },
  /**
   * 选用此地址,点击跳转
   */
  confirmPlace: function(){
    wx.navigateBack({
      delta: 1,
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this
    that.setData({typeid: options.typeid})
    //获取当前的地理位置、速度API
    that.confirmPostation()
  },
  //点击更新当前定位
  reConfirmPostion:function(){
    let that = this;
    that.confirmPostation();
  },
  /**
   * 更新当前定位
   */
  confirmPostation:function(){
    let that = this
    wx.getLocation({
      type: 'gcj02',
      success (res) {
//        console.log(res)
        if(res.errMsg=="getLocation:ok"){
          that.setData({
            latitude: res.latitude,
            longitude:res.longitude
          });
//          console.log(that.data.latitude)
          that.postation();
          //console.log('获取定位成功')
        }else{
          console.log('获取定位失败')
        }
      }
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    //关闭当前页面的时候，将值传递到上一个页面
    let that = this;
    //获取页面栈
    let pages = getCurrentPages();
    //获取所需页面
    let prevPage = pages[pages.length -2];//上一页
    prevPage.setData({
      address: that.data.title,//你需要传过去的数据
      latitude: that.data.latitude,
      longitude: that.data.longitude,
      typeid: that.data.typeid
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    let that = this
    wx.stopPullDownRefresh({
      success: (res) => {
        //获取当前的地理位置、速度API
        that.confirmPostation()
      },
    },3000)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  /**
   * 根据经纬度定位函数
   */
  postation: function(){
    let that = this;
    qqmapsdk.reverseGeocoder({
      //位置坐标，默认获取当前位置，Object格式
      location: {
        latitude: that.data.latitude,
        longitude: that.data.longitude
      },
      //get_poi: 1, //是否返回周边POI列表：1.返回；0不返回(默认),非必须参数
      success: function(res) {//成功后的回调
//        console.log(res);
        that.setData({
          city:res.result.address_component.city,
          title: res.result.formatted_addresses.recommend,
          address: res.result.address,
        });//定位市
        var res = res.result;
        var mks = [];
        //当get_poi为0时或者为不填默认值时，检索目标位置，按需使用
        mks.push({ // 获取返回结果，放到mks数组中
          title: res.address,
          id: 0,
          latitude: res.location.lat,
          longitude: res.location.lng,
          iconPath: '../../utils/placeholder.png',//图标路径
          width: 20,
          height: 20,
          callout: { //在markers上展示地址名称，根据需求是否需要
            content: res.formatted_addresses.recommend,
            color: '#000',
            display: 'ALWAYS'
          }
        });
        that.setData({ //设置markers属性和地图位置poi，将结果在地图展示
          markers: mks,
          poi: {
            latitude: res.location.lat,
            longitude: res.location.lng
          }
        });
      },
      fail: function(error) {
        console.error(error);
      },
      complete: function(res) {
        console.log(res);
      }
    })
  },
})